US Published Patent Application No. 2011/0246376 to Devakondra et al points out that network data processing systems are used for a variety of different purposes and come in a number of different forms. Several types of network data processing systems are commonly used by companies and other organizations and may include, for example, local area networks, wide area networks, virtual private networks, and other suitable types of networks.
In addition to such networks that may be maintained by the network operator itself, cloud services are available and the users of this type of network data processing systems neither own nor manage the physical infrastructure. In this manner, users may avoid capital expenditures, support costs, maintenance costs, labor costs, and other costs associated with more traditional types of networks. With cloud-based network environments, users consume resources as a service and typically pay based on the use of those resources. By turning to cloud-based computing resources, companies and organizations can avoid capital expenditures, such as costs for hardware, software, information technology services, and other associated costs.
Clouds may include, for example, a public cloud, a private cloud, and a hybrid cloud. A public cloud is a network environment in which users access computing resources over a network, such as the Internet. A private cloud is an internal cloud in which resources are accessed on private networks, such as an intranet. A private cloud also may provide additional separation from other users. A private cloud may include firewalls and other devices to provide for increased security and separation.
Organizations that employ more traditional types of network data processing systems may contemplate whether to change over from their more traditional network environment to a cloud network environment. In view of the fact that the particular cloud services offered by each cloud service provider or vendor will have different features, benefits, service operating requirements, and costs, it would be advantageous for a network operator to have access to tools that can help guide a decision to migrate computing tasks to a cloud. Moreover, it would be advantageous if such tools for a guiding a network operator could equip the network operator to have an accurate picture of the computing resources in its own network that will or can be replaced by the cloud computing resources. Furthermore, network operators can make better informed decisions about purchasing cloud services if they can get pricing information about potential cloud service providers and, especially, pricing information about the scope of computing resources that tasks could be taken over in a cloud service arrangement.
Computer networks consist of a number of computers in communication with each other. Often, networks are complicated or are built on an as-needed basis. For example, in a school setting, computers may generally be added when they can be afforded and joined into the network one by one. With larger organizations the complexity of the network and the communication between the devices within them can be even greater. Further, since the popularity of the internet, networks are no longer restricted to a single building or organization and instead the computers in the network can be spaced all over the world and across organizations. Since the construction of different parts of the network was by different people in many instances no one person knows the overall infrastructure of the network and how the elements are connected together. Even without the addition of new computers it is quite common for the implementation of real systems to be changed many times during its building operation (server swapped maintenance repair, et).
The arrangement of devices in the network and how they communicate with each other is sometimes referred to as network topology. The term “physical topology” can be used to refer to the arrangement of hardware and cabling but generally it is at least as important to know the manner of communications and the paths of the signals between the computers (sometimes referred to as a logical or signal topology). There are many applications and circumstances for which it is beneficial to understand the network and how computers are connected to each other, i.e., to acquire a mapping of the topology.
It is known to attempt to map and then monitor the topology of networks using various systems and methods and one known method is to install a software agent on each computer in the network. Each agent then searches the file system of the computer it is hosted on to determine what software is running on it. Based on what software is running it attempts to deduce whether it is a client (because it has found software to be used by the end user), a server (by having hosting software), or a firewall, etc. Since applications and software that may be loaded on the computer come in many different forms which change frequently, having an agent that can successfully identify all relevant software is difficult, and such agents must constantly be updated to accommodate new software.
Another approach is to attempt to establish data paths by using software such as ‘trace route’. Trace route is a computer networking tool that is used to determine the route taken by packets across an IP network. Trace route and similar programs work by sending successive batch of packets over the network and calculating the route from this. Trace route relies on ICMP (internet Control Message Protocol). A number of problems are associated with this approach, such as the problem that it relies on new data being sent through the system, thereby changing the traffic flowing. This in itself may not be a problem where there is sufficient bandwidth, but due to security concerns it is relatively common for firewalls to identify such foreign packets and to stop them from proceeding any further into the network.